Я создал чат-приложение ioni c с базой данных Firebase в реальном времени. Однако, когда я пытаюсь загрузить всех пользователей (на данный момент около 150) для страницы «Добавить нового пользователя», загрузка всех моих данных занимает слишком много времени. Ниже приведены мои файлы:
all-users.page. html
all-users.page.ts
ionViewDidEnter() {
this.showLoading();
this.accountsInfoResSub = this.getData.getUsers().snapshotChanges().subscribe((accountsInfoRes) => {
let acc = accountsInfoRes.filter((c: any) => {
if (c.key == null && c.key == undefined && c.payload.val() == null) return false;
if (c.payload.val().fullName == '' || c.payload.val().fullName == ' ' || c.payload.val().fullName == undefined) return false;
if (c.payload.val().publicVisibility == false) return false;
return true;
});
this.accounts = acc.map((c: any) => {
return { key: c.key, ...c.payload.val() }
});
console.log(this.accounts);
});
}
user-filter.pipe.ts
export class UserFilterPipe implements PipeTransform {
constructor(public afAuth: AngularFireAuth) {
}
transform(accounts: any, term?: any): any {
if (!accounts) {
return;
} else if (!term) {
console.log(this.afAuth.auth.currentUser.uid);
return accounts.filter((account) => account.uid != this.afAuth.auth.currentUser.uid);
} else {
term = term.toLowerCase();
return accounts.filter((account) => (account.uid != this.afAuth.auth.currentUser.uid) && account.fullName.toLowerCase().indexOf(term) > -1);
}
}
}
Есть идеи, что я здесь не так делаю. У меня есть все мои пользователи в списке, но загрузка 150 записей занимает около 5-10 секунд.